home *** CD-ROM | disk | FTP | other *** search
-
-
- This manual documents XModule version 2.8 released on 28 Jul 94.
-
- Copyright (C) 1993-1994 by Bernardo Innocenti, Freely distributable,
- all rights reserved.
-
- Overview
- ********
-
- The Amiga computer has standard file formats for almost everything.
- Graphics, text, animation, hypertext and many other data types are
- easily imported into any program that supports the given standards.
- But this isn't true for music. Too bad the music interchange file
- format defined by Electronic Arts (the old IFF SMUS) was too poor to be
- usable in high-quality music sequencers. Therefore, every music editor
- created its own proprietary module format, so that, for instance, you
- cannot load into ProTracker music written with Oktalyzer.
-
- XModule (pronounced Cross Module) born as music module
- conversion utility that tries to solve this problem. The project
- started in early 1993, as a friend of mine (Fabio), who wrote a lot of
- (good) music on Oktalyzer, needed ProTracker to obtain certain effects.
- He had an old PD conversion program called Tracker that worked only
- in particular conditions and was really bogus. So I decided to contact
- the author and he let me have the source for Lit30000 (about $20).
-
- The original program has been completely rewritten from scratch, as
- the source was really poorly coded. At the moment, Oktalyzer,
- ProTracker, NoiseTracker and SoundTracker are the only supported
- formats, but I'm still developing XModule, so contact me if you want to
- see your favorite music editor added to this (short) list (see Author
- Info).
-
- Now XModule sports many other features, like module optimization, a
- nice user interface and complex module editing. This is why I like to
- call XModule a module processor. XModule is to the music processing
- what ADPro and ImageFX are to image processing (am I a bit immodest?
- :-).
-
- Distribution
- ************
-
- XModule is a Freeware program. This means that you (probably)
- have got it free and you should not ask any money if you decide to
- copy it for someone else. If, instead, someone sold you XModule for a
- price higher than the media used to store it on (i.e. $1 for a DD
- disk), tell him he should try making money honestly.
-
- I'm not asking you to pay for XModule because I never paid for a
- ShareWare program, so I felt that I somehow had to pay my debt and I
- decided to distribute XModule as free software, a little gift to all
- the Amiga community. Feel free to distribute XModule to your friends
- and enemies, but, if you do so, you must keep the documentation and
- the other distribution files together with the executable. The source
- code is not required, but I'm distributing it to let others take
- advantage of my work, so, if possible, try to include the source too.
-
- Fred Fish, SAN, ADS and Aminet are especially granted permission to
- include XModule into their PD libraries. Other PD libraries are
- welcome as well.
-
- If you intend to include XModule or parts of it in a commercial
- package, please at least send me a free copy of the product. I would
- be honored to see one of my programs being part of a commercial package.
-
- You can modify or improve XModule (see Programmers), only be so kind
- to return the new source code to me, so I can put the new features in
- the next release. And, please, do not strip my name from the
- documentation, the program source, or the executable.
-
- This product is provided as is, without warranties of any kind:
- the author of this program cannot be held liable for any defects in the
- executable nor in the documentation or in any other files contained in
- this package. Any damage directly or indirectly caused by the
- use/misuse of XModule is the sole responsibility of the user her/him
- self. In other words: XModule never formatted my hard disk nor killed
- my dog, so I suppose it won't cause any damage to your system either,
- but, just in case, do not blame me if something nasty happens.
-
- Getting Started
- ***************
-
- XModule requires KickStart version 2.0 or greater. The reason is
- that I hate programming on 1.3 and I won't do it any more. If you still
- haven't upgraded to 2.0, you'll miss the chance to run XModule and many
- other wonderful programs. So what are you waiting for?
-
- XModule also takes advantage of some 3.0 features, like DataTypes,
- AmiGaGuide, Locale and some enhancements for the user interface.
-
- You can invoke XModule either from the Shell or Workbench. XModule
- accepts both command line and ToolTypes arguments. Workbench and Shell
- parameters are the same. The full AmigaDOS template is:
-
- XModule FROM/M,PUBSCREEN/K,PORTNAME/K
-
- The FROM keyword specifies optional modules to load at startup time.
- From Workbench, you multi-select module icons instead of specifying a
- ToolType.
-
- Specifying the PUBSCREEN keyword, followed by a public screen name,
- allows you to open XModule on an existing public screen. The given
- name should match exactly (case matters), or the system won't be able to
- find the requested screen. If the screen does not exist, a new public
- screen will open, cloning Workbench resolution and palette. Note that
- this behavior is not standard: Commodore commodities will abort if the
- required public screen does not exist. The default for this option is
- "Workbench", that will open XModule on the Workbench screen.
-
- PORTNAME will change the name of XModule's ARexx port. If a
- port with this name already exists, a number (eg: ".1") will be
- appended to the name, until a unique name is found. The port name
- defaults to "XMODULE". For more about the ARexx port, consult the
- ARexx Interface chapter.
-
- User Interface
- **************
-
- XModule's GUI follows Commodore's 2.0 style guidelines. Under
- Kickstart 3.0 and above, XModule takes advantage of some new OS
- capabilities to enhance some aspects of the GUI.
-
- Gadget layout is font sensitive, but using some fancy fonts could
- give you a strange user interface look. If you are using a very big
- font and a window becomes too big to fit in the screen, topaz/8 will
- be used as a fallback for rendering that window. When you close a
- window, it will remember its position and size when you open it again.
- The same applies to window zooming.
-
- In all windows, the following shortcut keys are active:
-
- ESC
- Close the active window. Does not work with ToolBox window, as it
- would make it too easy to accidentally exit the program.
-
- HELP
- Bring up AmigaGuide on-line help. This feature requires
- amigaguide.library, which is part of Workbench 2.1 and up,
- and XModule.guide located in the current directory or in the
- same directory of XModule's executable or in HELP:language/
- directory, where language is one of your Locale preferred
- languages.
-
- TAB
- Cycle forward through string and numeric gadgets within the active
- window. SHIFT-TAB will cycle backwards. TAB also activates
- the first string or numeric gadget if none is selected.
-
- Cursor up/down
- Move up and down in a viewlist whenever the active window contains
- one. SHIFT-Cursor moves 5 items up/down. ALT-Cursor moves to
- the top or to the bottom of the list.
-
- In addition, gadgets with underscored characters in labels, can be
- selected hitting the highlighted key. SHIFT-key acts the opposite of
- the unshifted key (sliders are decremented by one, cycle gadgets will
- cycle backwards, etc).
-
- Panels
- ******
-
- Sorry, XModule's documentation is still incomplete. The next release
- will hopefully be more accurate.
-
- But wait! Do not commit suicide for such a reason: XModule is very
- easy to use, and you will be able to operate it even without this
- chapter.
-
- ToolBox Window
- ==============
-
- Gadgets:
-
- Project Menu:
-
- Format Conversion
- *****************
-
- XModule can load and save modules created by other music editors.
- The following is a list of supported module formats:
-
- * NoiseTracker
- Noise/ProTracker 31 instruments module. This is the default.
-
- * ProTracker 2.3
- ProTracker 2.3 new 100 patterns module. XModule will automatically
- switch to ProTracker 100 whenever the converted module exceeds
- the 64 patterns limit.
-
- Warning: You must load such a module with ProTracker 2.3 or
- better in order to play/edit it. Older players will either refuse
- to load or turn the module into scratch dance.
-
- * SoundTracker 15 instrument module
- This is pretty useless as SoundTracker is becoming quite rare. Do
- not save SoundTracker modules unless you really need to, because
- most players/editors will stop supporting this format very soon.
- SoundTracker format has no way of identifying a module, therefore
- XModule will ask you to confirm a SoundTracker module when the
- file being loaded matches no other module format.
-
- * UnicTracker
- Actualy I've never seen UnicTracker, but I sometimes ripp Unic
- modules with ExoticRipper, so I decided to give support for this
- weird Tracker clone too. The format is very similat to
- ProTracker, except for the EMW3 ID.
-
- * Oktalyzer V1.1
- Oktalyzer is an old editor which can play up to 8 channels by
- mixing instruments in real time.
-
- As a matter of fact, there are things that simply cannot be done
- because of the big differences between module formats. Below is a list
- of the internal limitations of each module formats. When you save to a
- particular format, if the module exceeds one of this values, or makes
- use of features not implemented, some data will be stripped away to
- produce at least a partial conversion.
-
-
- Program Instr MaxPatt PattLen SongLen InstrLen
- --------------------------------------------------------
- Oktalyzer 36 128 128 128 128K
- Sound Tracker 15 64 64 128 64K
- Noise Tracker 31 64 64 128 64K
- Pro Tracker 31 100 64 128 64K
- MED/OctaMED 63 256 256 256 No Limit
-
- Where:
- #Instr is the maximum number of instruments,
- MaxPatt is the maximum number of patterns,
- PattLen is the maximum number of lines per pattern,
- SongLen is the maximum number of positions in a song,
- InstrLen is the maximum size of an instrument given in bytes.
-
- Effects are the hardest thing to convert. While Speed and Volume
- are almost the same between different music editors, some effects (such
- as Oktalyzer's H and L) cannot be converted because there are no
- equivalents in other music editors. Therefore, you will have to modify
- the score manually if you intend to convert a module while keeping such
- effects. In addiction, some effects behave in different ways even if
- they claim to do the same thing.
-
- Last but not least, some music editors support synthetic or hybrid
- instruments. Fortunately, none of the module formats known by XModule
- implement such instruments, because I can hardly think of a way to
- implement a sample to synth conversion (any ideas?). I used to like
- synthetic music, but it seems that all those great composers on the
- good old C64 have vanished... Why have you musicians become so lazy?
- 8-(
-
- Optimization
- ************
-
- Module optimization is achieved by removing all unused data in such
- a way that the module will sound the same as before. XModule can
- process a module to reduce its size as much as possible. It is
- generally a good idea to optimize a module before distributing it, but
- never while you are still composing it, because you could easly loose
- some data that you didn't want to discard. Do not expect to gain a lot
- of bytes optimizing modules: saving 20% of the total size is usually a
- very good result.
-
- * Unused patterns
- Some formats (e.g.: Sound/Noise/ProTracker) store empty patterns
- in a module if a pattern with a greater number is used. For
- instance, a song using patterns 1, 2 and 5 will contain patterns 3
- and 4 as well.
-
- Warning: If a song contains a part that has not been finished
- yet and has not already been inserted in the position table, you
- will lose it.
-
- Warning: When a song is saved to Noise/ProTracker, patterns
- beyond the last used patterns are discarded regardless of this
- switch. This is due to a limitation of Noise/ProTracker module
- format.
-
- * Unused instruments
- A composer may decide to use an instrument and then change his
- mind, but forget to clear the instrument. In this case the module
- will contain an instrument that is never played. These instruments
- are simply stripped away.
-
- * Sample data after a loop
- The part of an instrument following a loop is never played and is
- therefore discarded.
-
- * Instruments zero tails
- Long zero tails eat up memory and produce no sound. This
- optimization is performed only on loopless instruments, as a zero
- sequence inside a loop does make difference. XModule leaves at
- least two zero bytes to avoid the nasty click produced by the
- speaker dropping its volume to zero too quickly.
-
- ARexx Interface
- ***************
-
- Sorry, XModule's documentation is still incomplete. The next release
- will hopefully be more accurate (it's already three releases I'm
- promising it :-).
-
- Anyway, XModule's ARexx port is a little brain dead at the moment,
- so you're not missing a great deal.
-
- Known Bugs
- **********
-
- Murphy's laws state that nothing can be perfect, not even computer
- programs. XModule is far from being perfect and I need your help to
- fix as many bugs as possible. If you discover a bug which isn't
- reported in the list below (note: there is no list at the moment; this
- is a beta release, remember?), please notify me.
-
- When you report a bug, state exactly what happens and indicate how
- to reproduce the conditions that generated the problem. Reports like
- `XModule sometimes crashes converting my favorite module' does not help
- at all. Include your name if you want to be credited in future XModule
- releases.
-
- If the program refuses to convert a module, mail it to me on a disk
- or upload it to a BBS that I can reach and I'll try to fix the problem
- as soon as possible. Glass Globe BBS, whose address can be found in
- the Author Info chapter, will do. If you want the disk back with the
- fixed version of XModule, send me a self-addressed envelope with enough
- italian stamps or enough money for a reply.
-
- XModule has been tested on several machines running Kickstart 2.0,
- 3.0 and 3.1. It should work on any 68K family processor (tested on
- 68000, 68020 and 68040) and is Enforcer and Mungwall proof. I also
- tested XModule with virtual memory programs (such as VMM40) and found
- that everything seems to work correctly.
-
- Future plans
- ************
-
- * OctaMED
- This will probably be the next format I'll work on. I think this
- is the best music editor available on the Amiga, but I haven't yet
- got enough infos on its file format to code a conversion routine.
- If you have such information, please contact me (see Author Info).
-
- * TeX
- Another format I would like to add is AmigaTeX. If you know TeX,
- you will surely be wondering what a typesetting program can be
- used for in music. Well, AmigaTeX is at the moment is the best
- implementation available on any computer of the TeX typesetting
- program, and its distribution includes MusicTeX, a powerful
- music language which can output notes in a great standard staff
- notation. I know no other program on the Amiga that can print
- notes of such fine quality (if you do, let me know!), so I think
- that many musicians would appreciate such an option.
-
- * Other module formats
- If you have documentation regarding a format you would like to see
- in a next release, please send it to me together with a couple of
- modules and, if possible and legal, the program that created them.
- I'll try to implement the new format only if it is somewhat easy:
- it is very hard to convert, say, Future Composer to SoundTracker.
- Do not send a module without a text file describing its structure,
- as I'm not willing to spend my nights hex-dumping modules :).
-
- Programmer notes
- ****************
-
- XModule has been written in C and compiled with SAS C version 6.51,
- Other compilers may require some changes to the source.
-
- The program is written in respect of the Amiga multitasking
- operative system and complies with Commodore programming guidelines.
- All allocated resources will be (hopefully) freed before program
- termination. I wrote XModule with the goal in mind of keeping the
- executable fast and small.
-
- This manual has been typeset using MakeInfo, a GNU PD utility ported
- to the Amiga by Reinhard Spisser and Sebastiano Vigna. I found that
- the time I saved writing one file for three was nearly compensated by
- the time I spent learning how to operate MakeInfo. As I'm not that
- skilled in using TeX and MakeInfo, you will probably find this document
- a bit silly in its typesetting style.
-
- Besides, English is not my first language (as you might have
- guessed) and I bet this document is full of grammar mistakes.
-
- If you intend to translate, improve or somewhat edit this document,
- please work on the supplied TexInfo file and then process it with the
- utilities supplied in the MakeGuide distribution. You can find
- MakeGuide in several PD libraries such as BBSs.
-
- Do not hesitate to send criticisms to my work, and, even better,
- advices on how to improve the program and the documentation. See
- Author Info.
-
- Credits
- *******
-
- * Fabio Barzagli, for beta testing version 1.x, for the money he
- paid me for it and, last but not least, for letting me have (or
- steal?) his awesome modules!
-
- Keep on making good music, Fabio!
-
- * Alessandro Lombardi, for 2.x beta testing.
-
- Stop deleting files!
-
- * Massimo Brogioni, for being my fido boss and for spreading bogus
- XModule releases all around the world.
-
- Hey boss, have you got a spare 5Gig streamer?
-
- * Erno Tuomainen for his wonderful Finnish BBS, for his kindness and
- for all the support he gave me.
-
- Are there any more top-rating modules to leech?
-
- * Gerardo Iula, for letting me have the source of Tracker (by paying
- :-( ).
-
- I assumed the money I paid covered the rights of modifying the
- original source and distributing modified versions of your
- program. Hope you won't worry about it, Gerardo.
-
- * Sebastiano Vigna & his buddy Reinhard Spisser, for porting GNU
- MakeInfo to the Amiga and for Reinhard's E-Mail technical support.
-
- Please, continue developing this useful (and hard to learn) tool.
- By the way, MakeInfo crashed my Amiga really bad a couple of times!
- Are my docs that boring?
-
- * The Amiga, for being the best computer in the world. :^)
-
- Commodore: Why don't you sell the Amiga project to someone serious
- such as GVP or NewTek?
-
- How to contact the author
- *************************
-
- If you want to make me aware of your suggestions, bug reports, ideas
- or you want to send me a gift, a good module or, why not, some money
- :-), reach me in any of the following ways:
-
- * Mail
- Bernardo Innocenti
- Via Ventiquattro Maggio, 14
- 50129 - Firenze
- ITALY
-
- * FAX
- +39-55-8877771
- Attn: Bernardo Innocenti
- Subj: Amiga/XModule
-
- * E-Mail
- AmigaNet: Bernardo Innocenti 39:102/201.4
- FidoNet: Bernardo Innocenti 2:332/118.4
- UseNet: bernie@nikita.nervous.com
- (Glass Globe BBS ++39-577-959054)
-
- I will try to reply to all my E-Mail, but I'm too lazy to reply
- old-style mail. Your suggestions will be taken into account unless
- they are `I want XModule to do ice tea'-style.
-
- Concept Index
- *************
-
-
-
- Acknowledgements Credits
- Arguments, command line Getting Started
- Author's address Author Info
- Bug reports Known Bugs
- Bugs, known ones Known Bugs
- Compiling Programmers
- Contact the author, how to Author Info
- Credits Credits
- Distribution Distribution
- For programmers Programmers
- GUI User Interface
- How to contact the author Author Info
- Known Bugs Known Bugs
- Modifying XModule Programmers
- Optimization Optimization
- Overview of XModule Overview
- Panels Panels
- Starting XModule Getting Started
- Thanks Credits
- ToolTypes Getting Started
- Usage Getting Started
- User Interface User Interface
- Windows Panels
- XModule overview Overview
-
-